package dawn.jxufe.community.dao;

import dawn.jxufe.community.entity.LoginTicket;
import org.apache.ibatis.annotations.*;

/**
 * @author dawn21
 * @version 1.0
 * @date 2022/7/16 21:15
 * @component
 * 这次用注解声明SQL。
 * 多个字符串组成SQL语句。
 * 多注意，写错了不报错。
 */
@Mapper
@Deprecated // 不推荐使用。
public interface LoginTicketMapper {

    // 登录成功之后要插入凭证。id要配置成自动生成。
    @Insert({
            "insert into login_ticket(user_id,ticket,status,expired) ",
            "values(#{userId},#{ticket},#{status},#{expired})"
    })
    @Options(useGeneratedKeys = true, keyProperty = "id") // 自动生成的值赋值给id。
    int insertLoginTicket(LoginTicket loginTicket);

    // 通过ticket查询ticket。
    @Select({
            "select id,user_id,ticket,status,expired ",
            "from login_ticket where ticket=#{ticket}"
    })
    LoginTicket selectByTicket(String ticket);

    // 修改凭证状态。演示动态SQL中的if，需要在<script></script>之中。
    @Update({
            "<script>",
            "update login_ticket set status=#{status} where ticket=#{ticket} ",
            "<if test=\"ticket!=null\"> ",
            "and 1=1 ",
            "</if>",
            "</script>"
    })
    int updateStatus(String ticket, int status);

}
